package cn.mrcode.fd.blog.services;

import cn.mrcode.fd.blog.entity.Tag;
import cn.mrcode.fd.blog.task.TagCommand;

import java.util.List;

/**
 * 标签服务
 *
 * @author : zhuqiang
 * @version : V1.0
 * @date : 2015/12/30 22:17
 */
public interface ITagService {
    /**
     * 处理文章标签，把需要处理的标签转换成tagCommond存入队列，然后让队列来处理异步写入
     * @param articleId
     * @param oldTagNames
     * @param newTagNames
     */
    void handerTag(String articleId,String oldTagNames,String newTagNames);

    /**
     * 自减1标签的引用数量
     * @param tagCommand
     */
    void delRefNum(TagCommand tagCommand);

    /**
     * 添加文章对标签的引用，有可能标签是新增的
     * @param tagCommand
     */
    void addRef(TagCommand tagCommand);
    /**
     * 删除标签引用/并清减少标签数量
     * @param articleId
     */
    void delRef(String articleId);
    /**
     * 查询所有的标签
     * @return
     */
    List<Tag> findAll();


}
